package org.ainlolcat.ainscience.matrix;

import org.ainlolcat.ainscience.UpdateListener;
import org.ainlolcat.ainscience.column.Column;
import org.ainlolcat.ainscience.entity.Entity;
import org.ainlolcat.ainscience.entity.EntityParser;
import org.ainlolcat.ainscience.entity.links.Link;
import org.ainlolcat.ainscience.statistics.Statistic;
import org.ainlolcat.ainscience.templates.Template;

import javax.swing.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * @author ainlolcat
 *         Date: 5/5/13
 */
public class MatrixEntityWrapper implements Entity {
    Matrix matrix;
    Map<String, Link> links;

    public MatrixEntityWrapper(Matrix matrix) {
        this.matrix = matrix;
    }

    public MatrixEntityWrapper(Matrix matrix, Map<String, Link> links) {
        this.matrix = matrix;
        this.links = links;
    }

    public boolean isPersistent() {
        return false;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public boolean isVisible() {
        return false;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public EntityParser getParser() {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public JPanel getRenderer() {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public Template getTemplate() {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public String getType() {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public Collection<Link> getLinks() {
        return links.values();
    }

    public Link getLink(String name) {
        return links.get(name);
    }

    public void setLink(Link link) {
        //To change body of implemented methods use File | Settings | File Templates.
    }

    public List<String> getDependencies() {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public void setID(Integer id) {
        //To change body of implemented methods use File | Settings | File Templates.
    }

    public Integer getID() {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public void setName(String name) {
        //To change body of implemented methods use File | Settings | File Templates.
    }

    public String getName() {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public Column getColumnByOrder(Integer id) {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public Column getColumnById(Integer id) {
        return matrix.getColumn(id);
    }

    public Column getColumnByName(String name) {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public Column getXColumn(String axis) {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public void setColumn(Column column, Integer id) {
        //To change body of implemented methods use File | Settings | File Templates.
    }

    public void setStatistic(Statistic statistic) {
        //To change body of implemented methods use File | Settings | File Templates.
    }

    public Statistic getStatistic() {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public int getColumnCount() {
        return 0;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public int getRowCount() {
        return 0;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public boolean registerListener(UpdateListener listener) {
        return false;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public boolean removeListener(UpdateListener listener) {
        return false;  //To change body of implemented methods use File | Settings | File Templates.
    }
}
